It is sometimes useful to have an indication of the complexity of a data signal. For example, it has been proposed to multiplex a plurality of coded video signals, each encoded using a constant bit rate (CBR) encoder. The bit rate allocated to each of the CBR encoders is dynamically varied, based on both the complexity of the video signal being encoded, and the combined complexities of all of the video signals being multiplexed. In such a system, video signals having relatively high complexity are allocated a higher bit rate than those having relatively low complexity.
In another example, the CBR encoders, themselves, maintain their allocated constant bit rate by varying the quantizing step size (or the number of quantizing steps) used to encode the video signal. Using a smaller quantizing step size (or more quantizing steps) requires more bits to encode them; and conversely using a larger quantizing step size requires fewer bits. The quantizing step size is generally varied in response to the current instantaneous bit rate to maintain the overall predetermined constant bit rate.
In both of the above examples, it is desirable to have a complexity representative signal for each video signal being multiplexed. In the multiplexing example, the bit rates allocated to the CBR encoders encoding the video signals are adjusted, based on these complexity signals. In the CBR encoder example, the quantizing step size may be set based on the complexity of the signal being encoded, in addition to the current instantaneous bit rate.
One known measure of the complexity of a video signal is the number of bits necessary to encode that video signal using a variable bit rate (VBR) encoder: more bits indicate higher complexity, and conversely, fewer bits indicate lower complexity. Such a complexity measure can be generated in advance, or in parallel with other processing, a process termed forward analysis. The complexity measure, thus derived, may by used to control processing of that video signal by subsequent processing circuitry, such as a CBR encoder, or multiplexing system. A VBR encoder is a complex electronic system, however, and including a VBR encoder for each signal to be multiplexed in a multiplexer system, to determine the complexity of that signal, is expensive and results in lowered reliability due to the added complex circuitry.
Another proposed method for measuring the complexity of a video signal being encoded by a CBR encoder uses parameters generated during the CBR encoding process. Specifically, the product of the average quantizing step size for a predetermined time period of the video signal times the number of bits generated from encoding the video signal during that period has been found to vary with the complexity of the video signal being encoded, while being independent of the predetermined constant bit rate being produced by the CBR encoder. This measure, however, is produced during the encoding process, and is not available until after the picture or frame has been encoded, a process termed backward analysis. While this measure may be used as an estimate of the complexity of succeeding frames, it cannot be used by the CBR encoder itself to determine the necessary quantizing step size. It can also lead to inaccurate operation of the multiplexing system if a sudden change in complexity occurs, in particular, from a relatively simple image to a relatively complex one.
It is desirable to produce a measure of the complexity of a data signal that is available to the processing system simultaneously with the processing of the data signal itself, but does not require a very complex electronic system to produce the complexity measure.